home *** CD-ROM | disk | FTP | other *** search
/ PD Collection CD 1 / PD Collection CD 1.iso / textual / tex / files / !tex / TeXsource / web2ctex / ctex / h / texd < prev    next >
Encoding:
Text File  |  1990-06-08  |  10.5 KB  |  352 lines

  1. #undef    TRIP
  2. #undef    TRAP
  3. #define    STAT
  4. #undef    DEBUG
  5.  
  6. /* Make some parameters closer to the values used on the Vax implementation.
  7.    This is for Tony Lee at the Met Office */
  8. /*#define VAXLIKE*/
  9.  
  10. #include "tex.h"
  11. #define memmax 65530L 
  12. #define memmin 0 
  13. #define bufsize 500 
  14. #define errorline 79 
  15. #define halferrorline 50 
  16. #define maxprintline 79 
  17. #define stacksize 200 
  18. #define maxinopen 15 
  19. #define fontmax 120 
  20. #define fontmemsize 36000L 
  21. #define paramsize 60 
  22. #define nestsize 40 
  23. #ifdef VAXLIKE
  24. #define maxstrings 4400 
  25. #define stringvacancies 15000 
  26. #define poolsize 55000L 
  27. #else
  28. #define maxstrings 4400 
  29. #define stringvacancies 15000 
  30. #define poolsize 45000L 
  31. #endif
  32. #define savesize 2000 
  33. #define triesize 8000 
  34. #define dvibufsize 16384 
  35. #define filenamesize 1024 
  36. #define poolname "tex.pool" 
  37. #define memtop 65530L 
  38. typedef unsigned char ASCIIcode  ; 
  39. typedef unsigned char eightbits  ; 
  40. typedef integer poolpointer  ; 
  41. typedef integer strnumber  ; 
  42. typedef integer scaled  ; 
  43. typedef integer nonnegativeinteger  ; 
  44. typedef schar smallnumber  ; 
  45. typedef unsigned char quarterword  ; 
  46. typedef unsigned short halfword  ; 
  47. typedef schar twochoices  ; 
  48. typedef schar fourchoices  ; 
  49. #include "memory.h"
  50. typedef schar glueord  ; 
  51. typedef struct {
  52.     short modefield ; 
  53.   halfword headfield, tailfield ; 
  54.   integer pgfield, auxfield, mlfield ; 
  55. } liststaterecord  ; 
  56. typedef schar groupcode  ; 
  57. typedef struct {
  58.     quarterword statefield, indexfield ; 
  59.   halfword startfield, locfield, limitfield, namefield ; 
  60. } instaterecord  ; 
  61. typedef integer internalfontnumber  ; 
  62. typedef integer dviindex  ; 
  63. typedef integer triepointer  ; 
  64. typedef short hyphpointer  ; 
  65. EXTERN integer bad  ; 
  66. EXTERN ASCIIcode xord[128]  ; 
  67. EXTERN char xchr[256]  ; 
  68. EXTERN char nameoffile[filenamesize + 1], realnameoffile[filenamesize + 1]  ; 
  69. EXTERN integer namelength  ; 
  70. EXTERN ASCIIcode buffer[bufsize + 1]  ; 
  71. EXTERN integer first  ; 
  72. EXTERN integer last  ; 
  73. EXTERN integer maxbufstack  ; 
  74. EXTERN ASCIIcode strpool[poolsize + 1]  ; 
  75. EXTERN poolpointer strstart[maxstrings + 1]  ; 
  76. EXTERN poolpointer poolptr  ; 
  77. EXTERN strnumber strptr  ; 
  78. EXTERN poolpointer initpoolptr  ; 
  79. EXTERN strnumber initstrptr  ; 
  80. #ifdef INITEX
  81. EXTERN alphafile poolfile  ; 
  82. #endif /* INITEX */
  83. EXTERN alphafile logfile  ; 
  84. EXTERN schar selector  ; 
  85. EXTERN schar dig[23]  ; 
  86. EXTERN integer tally  ; 
  87. EXTERN integer termoffset  ; 
  88. EXTERN integer fileoffset  ; 
  89. EXTERN ASCIIcode trickbuf[errorline + 1]  ; 
  90. EXTERN integer trickcount  ; 
  91. EXTERN integer firstcount  ; 
  92. EXTERN schar interaction  ; 
  93. EXTERN boolean deletionsallowed  ; 
  94. EXTERN schar history  ; 
  95. EXTERN schar errorcount  ; 
  96. EXTERN strnumber helpline[6]  ; 
  97. EXTERN schar helpptr  ; 
  98. EXTERN boolean useerrhelp  ; 
  99. EXTERN integer interrupt  ; 
  100. EXTERN boolean OKtointerrupt  ; 
  101. EXTERN boolean aritherror  ; 
  102. EXTERN scaled remainder  ; 
  103. EXTERN halfword tempptr  ; 
  104. EXTERN memoryword 
  105. #define zmem (zzzaa - (int)(memmin))
  106.   zzzaa[memmax - memmin + 1]  ; 
  107. EXTERN halfword lomemmax  ; 
  108. EXTERN halfword himemmin  ; 
  109. EXTERN integer varused, dynused  ; 
  110. EXTERN halfword avail  ; 
  111. EXTERN halfword memend  ; 
  112. EXTERN halfword rover  ; 
  113. #ifdef DEBUG
  114. EXTERN boolean 
  115. #define freearr (zzzab - (int)(memmin))
  116.   zzzab[memmax - memmin + 1]  ; 
  117. EXTERN boolean 
  118. #define wasfree (zzzac - (int)(memmin))
  119.   zzzac[memmax - memmin + 1]  ; 
  120. EXTERN halfword wasmemend, waslomax, washimin  ; 
  121. EXTERN boolean panicking  ; 
  122. #endif /* DEBUG */
  123. EXTERN integer fontinshortdisplay  ; 
  124. EXTERN integer depththreshold  ; 
  125. EXTERN integer breadthmax  ; 
  126. EXTERN liststaterecord nest[nestsize + 1]  ; 
  127. EXTERN integer nestptr  ; 
  128. EXTERN integer maxneststack  ; 
  129. EXTERN liststaterecord curlist  ; 
  130. EXTERN short shownmode  ; 
  131. EXTERN schar oldsetting  ; 
  132. EXTERN memoryword zeqtb[5977]  ; 
  133. EXTERN quarterword 
  134. #define xeqlevel (zzzad -5267)
  135.   zzzad[710]  ; 
  136. EXTERN twohalves 
  137. #define hash (zzzae -258)
  138.   zzzae[3267]  ; 
  139. EXTERN halfword hashused  ; 
  140. EXTERN boolean nonewcontrolsequence  ; 
  141. EXTERN integer cscount  ; 
  142. EXTERN memoryword savestack[savesize + 1]  ; 
  143. EXTERN integer saveptr  ; 
  144. EXTERN integer maxsavestack  ; 
  145. EXTERN quarterword curlevel  ; 
  146. EXTERN groupcode curgroup  ; 
  147. EXTERN integer curboundary  ; 
  148. EXTERN integer magset  ; 
  149. EXTERN eightbits curcmd  ; 
  150. EXTERN halfword curchr  ; 
  151. EXTERN halfword curcs  ; 
  152. EXTERN halfword curtok  ; 
  153. EXTERN instaterecord inputstack[stacksize + 1]  ; 
  154. EXTERN integer inputptr  ; 
  155. EXTERN integer maxinstack  ; 
  156. EXTERN instaterecord curinput  ; 
  157. EXTERN integer inopen  ; 
  158. EXTERN alphafile inputfile[maxinopen + 1]  ; 
  159. EXTERN integer line  ; 
  160. EXTERN integer linestack[maxinopen + 1]  ; 
  161. EXTERN schar scannerstatus  ; 
  162. EXTERN halfword warningindex  ; 
  163. EXTERN halfword defref  ; 
  164. EXTERN halfword paramstack[paramsize + 1]  ; 
  165. EXTERN integer paramptr  ; 
  166. EXTERN integer maxparamstack  ; 
  167. EXTERN integer alignstate  ; 
  168. EXTERN integer baseptr  ; 
  169. EXTERN halfword parloc  ; 
  170. EXTERN halfword partoken  ; 
  171. EXTERN boolean forceeof  ; 
  172. EXTERN halfword curmark[5]  ; 
  173. EXTERN schar longstate  ; 
  174. EXTERN halfword pstack[9]  ; 
  175. EXTERN integer curval  ; 
  176. EXTERN schar curvallevel  ; 
  177. EXTERN smallnumber radix  ; 
  178. EXTERN glueord curorder  ; 
  179. EXTERN alphafile readfile[16]  ; 
  180. EXTERN schar readopen[17]  ; 
  181. EXTERN halfword condptr  ; 
  182. EXTERN schar iflimit  ; 
  183. EXTERN smallnumber curif  ; 
  184. EXTERN integer ifline  ; 
  185. EXTERN integer skipline  ; 
  186. EXTERN strnumber curname  ; 
  187. EXTERN strnumber curarea  ; 
  188. EXTERN strnumber curext  ; 
  189. EXTERN poolpointer areadelimiter  ; 
  190. EXTERN poolpointer extdelimiter  ; 
  191. EXTERN ccharpointer TEXformatdefault  ; 
  192. EXTERN boolean nameinprogress  ; 
  193. EXTERN strnumber jobname  ; 
  194. EXTERN bytefile dvifile  ; 
  195. EXTERN strnumber outputfilename  ; 
  196. EXTERN strnumber logname  ; 
  197. EXTERN bytefile tfmfile  ; 
  198. EXTERN memoryword fontinfo[fontmemsize + 1]  ; 
  199. EXTERN integer fmemptr  ; 
  200. EXTERN internalfontnumber fontptr  ; 
  201. EXTERN fourquarters fontcheck[fontmax + 1]  ; 
  202. EXTERN scaled fontsize[fontmax + 1]  ; 
  203. EXTERN scaled fontdsize[fontmax + 1]  ; 
  204. EXTERN halfword fontparams[fontmax + 1]  ; 
  205. EXTERN strnumber fontname[fontmax + 1]  ; 
  206. EXTERN strnumber fontarea[fontmax + 1]  ; 
  207. EXTERN eightbits fontbc[fontmax + 1]  ; 
  208. EXTERN eightbits fontec[fontmax + 1]  ; 
  209. EXTERN halfword fontglue[fontmax + 1]  ; 
  210. EXTERN boolean fontused[fontmax + 1]  ; 
  211. EXTERN integer hyphenchar[fontmax + 1]  ; 
  212. EXTERN integer skewchar[fontmax + 1]  ; 
  213. EXTERN integer charbase[fontmax + 1]  ; 
  214. EXTERN integer widthbase[fontmax + 1]  ; 
  215. EXTERN integer heightbase[fontmax + 1]  ; 
  216. EXTERN integer depthbase[fontmax + 1]  ; 
  217. EXTERN integer italicbase[fontmax + 1]  ; 
  218. EXTERN integer ligkernbase[fontmax + 1]  ; 
  219. EXTERN integer kernbase[fontmax + 1]  ; 
  220. EXTERN integer extenbase[fontmax + 1]  ; 
  221. EXTERN integer parambase[fontmax + 1]  ; 
  222. EXTERN fourquarters nullcharacter  ; 
  223. EXTERN integer totalpages  ; 
  224. EXTERN scaled maxv  ; 
  225. EXTERN scaled maxh  ; 
  226. EXTERN integer maxpush  ; 
  227. EXTERN integer lastbop  ; 
  228. EXTERN integer deadcycles  ; 
  229. EXTERN boolean doingleaders  ; 
  230. EXTERN quarterword c, f  ; 
  231. EXTERN scaled ruleht, ruledp, rulewd  ; 
  232. EXTERN halfword g  ; 
  233. EXTERN integer lq, lr  ; 
  234. EXTERN eightbits dvibuf[dvibufsize + 1]  ; 
  235. EXTERN dviindex halfbuf  ; 
  236. EXTERN dviindex dvilimit  ; 
  237. EXTERN dviindex dviptr  ; 
  238. EXTERN integer dvioffset  ; 
  239. EXTERN integer dvigone  ; 
  240. EXTERN halfword downptr, rightptr  ; 
  241. EXTERN scaled dvih, dviv  ; 
  242. EXTERN scaled curh, curv  ; 
  243. EXTERN internalfontnumber dvif  ; 
  244. EXTERN integer curs  ; 
  245. EXTERN scaled totalstretch[4], totalshrink[4]  ; 
  246. EXTERN halfword adjusttail  ; 
  247. EXTERN integer packbeginline  ; 
  248. EXTERN twohalves emptyfield  ; 
  249. EXTERN fourquarters nulldelimiter  ; 
  250. EXTERN halfword curmlist  ; 
  251. EXTERN smallnumber curstyle  ; 
  252. EXTERN smallnumber cursize  ; 
  253. EXTERN scaled curmu  ; 
  254. EXTERN boolean mlistpenalties  ; 
  255. EXTERN internalfontnumber curf  ; 
  256. EXTERN quarterword curc  ; 
  257. EXTERN fourquarters curi  ; 
  258. EXTERN integer magicoffset  ; 
  259. EXTERN halfword curalign  ; 
  260. EXTERN halfword curspan  ; 
  261. EXTERN halfword curloop  ; 
  262. EXTERN halfword alignptr  ; 
  263. EXTERN halfword curhead, curtail  ; 
  264. EXTERN halfword justbox  ; 
  265. EXTERN halfword passive  ; 
  266. EXTERN halfword printednode  ; 
  267. EXTERN halfword passnumber  ; 
  268. EXTERN scaled activewidth[7]  ; 
  269. EXTERN scaled curactivewidth[7]  ; 
  270. EXTERN scaled background[7]  ; 
  271. EXTERN scaled breakwidth[7]  ; 
  272. EXTERN boolean noshrinkerroryet  ; 
  273. EXTERN halfword curp  ; 
  274. EXTERN boolean secondpass  ; 
  275. EXTERN integer threshold  ; 
  276. EXTERN scaled minimaldemerits[4]  ; 
  277. EXTERN scaled minimumdemerits  ; 
  278. EXTERN halfword bestplace[4]  ; 
  279. EXTERN halfword bestplline[4]  ; 
  280. EXTERN scaled discwidth  ; 
  281. EXTERN halfword easyline  ; 
  282. EXTERN halfword lastspecialline  ; 
  283. EXTERN scaled firstwidth  ; 
  284. EXTERN scaled secondwidth  ; 
  285. EXTERN scaled firstindent  ; 
  286. EXTERN scaled secondindent  ; 
  287. EXTERN halfword bestbet  ; 
  288. EXTERN integer fewestdemerits  ; 
  289. EXTERN halfword bestline  ; 
  290. EXTERN integer actuallooseness  ; 
  291. EXTERN integer linediff  ; 
  292. EXTERN halfword hc[66]  ; 
  293. EXTERN smallnumber hn  ; 
  294. EXTERN halfword ha, hb  ; 
  295. EXTERN internalfontnumber hf  ; 
  296. EXTERN ASCIIcode hu[64]  ; 
  297. EXTERN integer hyfchar  ; 
  298. EXTERN schar hyf[65]  ; 
  299. EXTERN smallnumber hyphenpassed  ; 
  300. EXTERN twohalves trie[triesize + 1]  ; 
  301. EXTERN smallnumber hyfdistance[256]  ; 
  302. EXTERN smallnumber hyfnum[256]  ; 
  303. EXTERN quarterword hyfnext[256]  ; 
  304. EXTERN strnumber hyphword[308]  ; 
  305. EXTERN halfword hyphlist[308]  ; 
  306. EXTERN hyphpointer hyphcount  ; 
  307. #ifdef INITEX
  308. EXTERN quarterword trieophash[511]  ; 
  309. #endif /* INITEX */
  310. EXTERN quarterword trieopptr  ; 
  311. #ifdef INITEX
  312. EXTERN ASCIIcode triec[triesize + 1]  ; 
  313. EXTERN quarterword trieo[triesize + 1]  ; 
  314. EXTERN triepointer triel[triesize + 1]  ; 
  315. EXTERN triepointer trier[triesize + 1]  ; 
  316. EXTERN triepointer trieptr  ; 
  317. #endif /* INITEX */
  318. #ifdef INITEX
  319. EXTERN triepointer triehash[triesize + 1]  ; 
  320. #endif /* INITEX */
  321. #ifdef INITEX
  322. EXTERN boolean trietaken[triesize + 1]  ; 
  323. EXTERN triepointer triemin  ; 
  324. #endif /* INITEX */
  325. EXTERN triepointer triemax  ; 
  326. EXTERN scaled bestheightplusdepth  ; 
  327. EXTERN halfword pagetail  ; 
  328. EXTERN schar pagecontents  ; 
  329. EXTERN scaled pagemaxdepth  ; 
  330. EXTERN halfword bestpagebreak  ; 
  331. EXTERN integer leastpagecost  ; 
  332. EXTERN scaled bestsize  ; 
  333. EXTERN scaled pagesofar[8]  ; 
  334. EXTERN halfword lastglue  ; 
  335. EXTERN integer lastpenalty  ; 
  336. EXTERN scaled lastkern  ; 
  337. EXTERN integer insertpenalties  ; 
  338. EXTERN boolean outputactive  ; 
  339. EXTERN halfword curbox  ; 
  340. EXTERN halfword aftertoken  ; 
  341. EXTERN boolean longhelpseen  ; 
  342. EXTERN strnumber formatident  ; 
  343. EXTERN wordfile fmtfile  ; 
  344. EXTERN integer readyalready  ; 
  345. EXTERN alphafile writefile[16]  ; 
  346. EXTERN boolean writeopen[18]  ; 
  347. EXTERN halfword writeloc  ; 
  348. EXTERN poolpointer editnamestart  ; 
  349. EXTERN integer editnamelength, editline, tfmtemp  ; 
  350.  
  351. #include "coerce.h"
  352.